package com.teamin.service;

import com.teamin.dto.NetDiskShareDTO;
import com.teamin.entity.NetDisk;
import com.teamin.entity.NetDiskShare;
import com.teamin.vo.NetDiskFoldersByParentIdVO;
import com.teamin.web.exception.GlobalErrorInfoException;

import java.util.List;

/**
 * 网盘服务接口
 *
 * Created by e on 2017/11/20
 *
 * @author <a href="http://eregg.com">eregg</a>
 */
public interface INetDiskService {


    /**
     * 新建文件夹
     */
    boolean save(NetDisk netDisk);

    /**
     * 获取来自任务附件文件
     */
    List<NetDisk> listFilesByAnnex(Integer circleId);

    /**
     * 搜索
     */
    List<NetDisk> findFiles(NetDisk netDisk);

    /**
     * 获取子目录
     */
    List<NetDisk> findChild(NetDisk netDisk);

    /**
     * 文件夹重命名
     */
    boolean rename(Long loginUserId, NetDisk netDisk)throws GlobalErrorInfoException;

    /**
     * 获取文件详情
     */
    NetDisk fileDetails(Long fileId);

    /**
     * 获取文件夹详情
     */
    NetDisk folderDetails(Long folderId);


    /**
     * 创建分享
     */
    NetDiskShare createShare(NetDiskShareDTO netDiskShareDTO);

    /**
     * 获取分享的网盘文件
     */
    List<NetDisk> findByShare(Long shareId);


    /**
     * 删除文件，文件夹
     */
    Integer rm(Long loginUserId, List<String> ids);

    /**
     * @Author: yangrui
     * @Description: 根据节点显示文件夹列表
     * @Date: 下午3:05 2017/11/24
     */
    List<NetDiskFoldersByParentIdVO> foldersByParentId(Long loginUserId, Integer circleId, Long parentId);

    /**
     * @Author: yangrui
     * @Description: 文件移动至
     * @Date: 下午4:11 2017/11/24
     */
    void fileMove(Long loginUserId, Integer circleId, String fileIds, Long parentId);

    /**
     * 删除OSS文件
     */
    void rmOSSFile();

    /**
     * 根据uui 获取 文件
     * @param uuid
     * @return
     */
    NetDisk getByUUID(String uuid);

    /**
     * 文件上传成功，重置状态（正在上传-->未删除）
     * 向圈子成员，发送通知
     */
    void uploadSuccessHandler(List<String> uuidList);
}
